package cn.tedu.micro.demo.client;


import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.impl.AMQImpl;
import lombok.extern.slf4j.Slf4j;

/**
 * 通过了解rabbitmq的链接概念和结构
 * 在这个管理类中 创建一个静态方法，为每一个客户端程序
 * 构造一个可用channel对象
 */
@Slf4j
public class RabbitChannelManager {
    public static Channel newChannel(){
        // 有tcp链接资源建立的 java代码 一般需要管理异常
        try{
            //1.创建长连接 connection
            ConnectionFactory factory=new ConnectionFactory();
            //2.提供必要属性 host port(5672) username password
            factory.setHost("192.168.8.100");
            factory.setPort(5672);
            factory.setUsername("admin");
            factory.setPassword("123456");
            //3.从工厂拿到一个长连接
            Connection connection = factory.newConnection();
            //4.从长连接拿到短链接
            Channel channel = connection.createChannel();
            return channel;
        }catch (Exception e ){
            log.error("channel通道建立失败");
            throw new RuntimeException(e);
        }
    }
}
